# 赋值运算符
# id(name)  查询name的内存空间
name = 'admin'
name1 = name
print(id(name), name)
print(id(name1), name1)
# 多变量同时赋值
a, b = 3, 4
print(a, b)


# 算术运算符
# + - * /  **:表示几次幂  //:表示整除   %:取余
print(b / a)
print(a ** b)
print(b//a)
print(a//b)
print(b%a)


#关系运算符
# == != > = < >= <= is is not
# is is not 判断内存地址是不是一样
user = 'jack'
user1 = 'jack'
user2 = 'jack2'
if user is user1:
    print("相等")
else:
    pass
if user == user1:
    print("相等")
else:
    pass
if user is not user2:
    print("不相等")
else:
    pass


#逻辑运算符   python中没有&&和||
# and 逻辑与  or 逻辑或 not 逻辑非
n1 = 8
n2 = 5
n3 = 3
result = n1>n2 and n3<n2
print(result)
flag = False
result2 = not flag
print(result2)


#位运算符
# &:与  |：或  ~：非(二进制取反)  ^：异或  <<：左移 >>：右移
# bin(a)  把a转为二进制表示,0b开头表示二进制，0o表示八进制，0x表示十六进制
# int(n)  把n二进制数转为十进制表示
# 求-8的二进制,先求正8为00001000，然后取反加1得到-8的二进制表示
m = 3
print(bin(m))
n = 0b111101
print(int(n))
f = -8
print(bin(f))
print(5|3)


#三目运算符
#其他语言格式   表达式 ? 真 : 假
#python的格式：结果 if 表达式 else 结果
a1 = 12
a2 = 7
result = (a1+a2) if a1>a2 else (a1-a2)
print(result)


#运算符的优先级
'''
排序：算术运算符>位运算符>关系运算符>逻辑运算符>赋值运算符
**
~
* / // %  算术运算符
+ - 
<< >>  位运算符
&
^
|
== != >= <= 关系运算符
is is not
not   逻辑运算符
and
or 
= 赋值运算符
'''


